{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "__Author:__ Bram Van de Sande\n",
    "\n",
    "__Date:__ 31 JAN 2018\n",
    "\n",
    "__Outline:__ Derive list of known Transcription Factors in Mus musculus."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "The list of transcription factors is available from TFCat portal (http://www.tfcat.ca)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "b'Skipping line 604: expected 12 fields, saw 13\\n'\n"
     ]
    }
   ],
   "source": [
    "tf_raw = pd.read_csv('export.txt', delimiter='\\t', error_bad_lines=False, encoding='ISO-8859-1')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gene ID</th>\n",
       "      <th>Description</th>\n",
       "      <th>DBD Classification (Protein Group/Protein Family)</th>\n",
       "      <th>Reviewer</th>\n",
       "      <th>Judgement</th>\n",
       "      <th>Taxa</th>\n",
       "      <th>Reviewer Commments</th>\n",
       "      <th>PubMed ID</th>\n",
       "      <th>Function</th>\n",
       "      <th>Species</th>\n",
       "      <th>Evidence Strength</th>\n",
       "      <th>PubMed Comments</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>11350.0</td>\n",
       "      <td>c-abl oncogene 1, receptor tyrosine kinase</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Warren Cheung</td>\n",
       "      <td>Indeterminate - There is no evidence for or ag...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Part of the family of non-receptor tyrosine ki...</td>\n",
       "      <td>16091742.0</td>\n",
       "      <td>Transactivation</td>\n",
       "      <td>Human; Mouse</td>\n",
       "      <td>Weak</td>\n",
       "      <td>Activated Abl shown to be involved in transact...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11545.0</td>\n",
       "      <td>poly (ADP-ribose) polymerase family, member 1</td>\n",
       "      <td>Zinc-coordinating Group/No Family Level Classi...</td>\n",
       "      <td>Sarav Sundararajan</td>\n",
       "      <td>TF Gene Candidate</td>\n",
       "      <td>Transcription Regulatory Activity: heterochrom...</td>\n",
       "      <td>Some evidence of sequence-specific binding and...</td>\n",
       "      <td>10023680.0</td>\n",
       "      <td>DNA Binding</td>\n",
       "      <td>Unknown</td>\n",
       "      <td>Strong</td>\n",
       "      <td>Bandshift and footprinting experiments show th...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>10744766.0</td>\n",
       "      <td>Co-activation</td>\n",
       "      <td>Human</td>\n",
       "      <td>Strong</td>\n",
       "      <td>Parp1 co-immunoprecipitates with b-MYB and enh...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>12543974.0</td>\n",
       "      <td>Other</td>\n",
       "      <td>Unknown</td>\n",
       "      <td>Strong</td>\n",
       "      <td>The authors show in drosophila that PARP1 is r...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>11592.0</td>\n",
       "      <td>agitans</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Amy Ticoll</td>\n",
       "      <td>Indeterminate - There is no evidence for or ag...</td>\n",
       "      <td>NaN</td>\n",
       "      <td>No papers found regarding this gene.</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Gene ID                                    Description  \\\n",
       "0  11350.0     c-abl oncogene 1, receptor tyrosine kinase   \n",
       "1  11545.0  poly (ADP-ribose) polymerase family, member 1   \n",
       "2      NaN                                            NaN   \n",
       "3      NaN                                            NaN   \n",
       "4  11592.0                                        agitans   \n",
       "\n",
       "   DBD Classification (Protein Group/Protein Family)            Reviewer  \\\n",
       "0                                                NaN       Warren Cheung   \n",
       "1  Zinc-coordinating Group/No Family Level Classi...  Sarav Sundararajan   \n",
       "2                                                NaN                 NaN   \n",
       "3                                                NaN                 NaN   \n",
       "4                                                NaN          Amy Ticoll   \n",
       "\n",
       "                                           Judgement  \\\n",
       "0  Indeterminate - There is no evidence for or ag...   \n",
       "1                                  TF Gene Candidate   \n",
       "2                                                NaN   \n",
       "3                                                NaN   \n",
       "4  Indeterminate - There is no evidence for or ag...   \n",
       "\n",
       "                                                Taxa  \\\n",
       "0                                                NaN   \n",
       "1  Transcription Regulatory Activity: heterochrom...   \n",
       "2                                                NaN   \n",
       "3                                                NaN   \n",
       "4                                                NaN   \n",
       "\n",
       "                                  Reviewer Commments   PubMed ID  \\\n",
       "0  Part of the family of non-receptor tyrosine ki...  16091742.0   \n",
       "1  Some evidence of sequence-specific binding and...  10023680.0   \n",
       "2                                                NaN  10744766.0   \n",
       "3                                                NaN  12543974.0   \n",
       "4               No papers found regarding this gene.         NaN   \n",
       "\n",
       "          Function       Species Evidence Strength  \\\n",
       "0  Transactivation  Human; Mouse              Weak   \n",
       "1      DNA Binding       Unknown            Strong   \n",
       "2    Co-activation         Human            Strong   \n",
       "3            Other       Unknown            Strong   \n",
       "4              NaN           NaN               NaN   \n",
       "\n",
       "                                     PubMed Comments  \n",
       "0  Activated Abl shown to be involved in transact...  \n",
       "1  Bandshift and footprinting experiments show th...  \n",
       "2  Parp1 co-immunoprecipitates with b-MYB and enh...  \n",
       "3  The authors show in drosophila that PARP1 is r...  \n",
       "4                                                NaN  "
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tf_raw.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [],
   "source": [
    "tfs = tf_raw[['Gene ID', 'Evidence Strength']].drop_duplicates().dropna()\n",
    "tfs['ID'] = list(map(int, tfs['Gene ID']))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "930"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "len(tfs)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Gene ID</th>\n",
       "      <th>Evidence Strength</th>\n",
       "      <th>ID</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>11350.0</td>\n",
       "      <td>Weak</td>\n",
       "      <td>11350</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>11545.0</td>\n",
       "      <td>Strong</td>\n",
       "      <td>11545</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>11614.0</td>\n",
       "      <td>Medium</td>\n",
       "      <td>11614</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>11622.0</td>\n",
       "      <td>Strong</td>\n",
       "      <td>11622</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>11634.0</td>\n",
       "      <td>Weak</td>\n",
       "      <td>11634</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "    Gene ID Evidence Strength     ID\n",
       "0   11350.0              Weak  11350\n",
       "1   11545.0            Strong  11545\n",
       "5   11614.0            Medium  11614\n",
       "19  11622.0            Strong  11622\n",
       "20  11634.0              Weak  11634"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tfs.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "These TFs are available as EntrezGene identifiers. They not to be converted to MGI symbols which can be done via: https://david.ncifcrf.gov/conversion.jsp ."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "metadata": {},
   "outputs": [],
   "source": [
    "conv_tfs = pd.read_csv('conv_B1DE4DB27D351516106646392.txt', delimiter='\\t')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>From</th>\n",
       "      <th>To</th>\n",
       "      <th>Species</th>\n",
       "      <th>Gene Name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>245572</td>\n",
       "      <td>TBX22</td>\n",
       "      <td>Mus musculus</td>\n",
       "      <td>T-box 22(Tbx22)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>55942</td>\n",
       "      <td>SERTAD1</td>\n",
       "      <td>Mus musculus</td>\n",
       "      <td>SERTA domain containing 1(Sertad1)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>57246</td>\n",
       "      <td>TBX20</td>\n",
       "      <td>Mus musculus</td>\n",
       "      <td>T-box 20(Tbx20)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>16601</td>\n",
       "      <td>KLF9</td>\n",
       "      <td>Mus musculus</td>\n",
       "      <td>Kruppel-like factor 9(Klf9)</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>16600</td>\n",
       "      <td>KLF4</td>\n",
       "      <td>Mus musculus</td>\n",
       "      <td>Kruppel-like factor 4 (gut)(Klf4)</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     From       To       Species                           Gene Name\n",
       "0  245572    TBX22  Mus musculus                     T-box 22(Tbx22)\n",
       "1   55942  SERTAD1  Mus musculus  SERTA domain containing 1(Sertad1)\n",
       "2   57246    TBX20  Mus musculus                     T-box 20(Tbx20)\n",
       "3   16601     KLF9  Mus musculus         Kruppel-like factor 9(Klf9)\n",
       "4   16600     KLF4  Mus musculus   Kruppel-like factor 4 (gut)(Klf4)"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "conv_tfs.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "metadata": {},
   "outputs": [],
   "source": [
    "def extract_symbol(name):\n",
    "    s_idx = name.rfind('(')\n",
    "    e_idx = name.rfind(')')\n",
    "    return name[s_idx+1:e_idx]\n",
    "\n",
    "conv_tfs['Gene Name'].apply(extract_symbol).to_csv('mm_tfs.txt', index=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 39,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Tbx22\r\n",
      "Sertad1\r\n",
      "Tbx20\r\n",
      "Klf9\r\n",
      "Klf4\r\n",
      "Snrpc\r\n",
      "Elf3\r\n",
      "Foxo6\r\n",
      "Elf5\r\n",
      "Gbx2\r\n",
      "Smarcad1\r\n",
      "Elk1\r\n",
      "Elk3\r\n",
      "Gtf2h1\r\n",
      "Elk4\r\n",
      "Gtf2i\r\n",
      "Snrpb2\r\n",
      "Gtf2h4\r\n",
      "Meox2\r\n",
      "Meox1\r\n",
      "Satb1\r\n",
      "Fosl1\r\n",
      "Esx1\r\n",
      "Suz12\r\n",
      "Fosl2\r\n",
      "Esr2\r\n",
      "Fos\r\n",
      "Esr1\r\n",
      "Fosb\r\n",
      "Mesp2\r\n",
      "Supt5\r\n",
      "Supt4a\r\n",
      "Elf1\r\n",
      "Grhl3\r\n",
      "Pbx4\r\n",
      "Hes6\r\n",
      "Mef2d\r\n",
      "Suv39h1\r\n",
      "Cebpd\r\n",
      "Cebpb\r\n",
      "Rarb\r\n",
      "Cebpz\r\n",
      "Npas3\r\n",
      "Son\r\n",
      "Meis1\r\n",
      "Cebpa\r\n",
      "Arid3b\r\n",
      "Spen\r\n",
      "Atoh8\r\n",
      "Tgif2lx1\r\n",
      "Zbtb16\r\n",
      "Lmx1b\r\n",
      "Sin3b\r\n",
      "Sin3a\r\n",
      "Sim2\r\n",
      "Smarca2\r\n",
      "Sox1\r\n",
      "Eaf2\r\n",
      "Sox10\r\n",
      "Wwox\r\n",
      "Sox13\r\n",
      "Sox14\r\n",
      "Sox11\r\n",
      "Npas4\r\n",
      "Hoxa11\r\n",
      "Hoxa2\r\n",
      "Taf8\r\n",
      "Hoxa1\r\n",
      "Foxi1\r\n",
      "Hoxa10\r\n",
      "Dlx2\r\n",
      "Dlx3\r\n",
      "Scx\r\n",
      "Nrip3\r\n",
      "Tbpl1\r\n",
      "Trim25\r\n",
      "Dlx6\r\n",
      "Wdr5\r\n",
      "Mdm4\r\n",
      "Dlx4\r\n",
      "Tfap2e\r\n",
      "Dlx5\r\n",
      "Taf2\r\n",
      "Mdm2\r\n",
      "Sox5\r\n",
      "Foxe1\r\n",
      "Sox4\r\n",
      "Mdfi\r\n",
      "Sox6\r\n",
      "Hand2\r\n",
      "Sox2\r\n",
      "Hand1\r\n",
      "Foxm1\r\n",
      "Foxd4\r\n",
      "Sox3\r\n",
      "Foxf2\r\n",
      "Sox15\r\n",
      "Gtf2h2\r\n",
      "Sox18\r\n",
      "Sox17\r\n",
      "Hnrnpk\r\n",
      "Hnrnpl\r\n",
      "Hnrnpab\r\n",
      "Hnrnpc\r\n",
      "Gcm2\r\n",
      "Foxl1\r\n",
      "Gli2\r\n",
      "Gli1\r\n",
      "Rpl7a\r\n",
      "Mef2b\r\n",
      "Zfp106\r\n",
      "Gli3\r\n",
      "Taf11\r\n",
      "Mef2a\r\n",
      "Mecp2\r\n",
      "Sall3\r\n",
      "Sp4\r\n",
      "Fli1\r\n",
      "Sp3\r\n",
      "Sp100\r\n",
      "Sp1\r\n",
      "Sox9\r\n",
      "Sox8\r\n",
      "Sox7\r\n",
      "Nr4a1\r\n",
      "Hmx2\r\n",
      "Hlf\r\n",
      "Foxa1\r\n",
      "Foxa2\r\n",
      "Tmf1\r\n",
      "Nr1h5\r\n",
      "Polr2a\r\n",
      "Sub1\r\n",
      "Snurf\r\n",
      "Grhl1\r\n",
      "Onecut1\r\n",
      "Hnf4a\r\n",
      "Ets1\r\n",
      "Ets2\r\n",
      "Hmgn3\r\n",
      "Brd4\r\n",
      "Hmga1\r\n",
      "E2f7\r\n",
      "Rreb1\r\n",
      "Tbx19\r\n",
      "Ncoa5\r\n",
      "Vav1\r\n",
      "Vax1\r\n",
      "Tbl1x\r\n",
      "Pias4\r\n",
      "Dmtf1\r\n",
      "Klf15\r\n",
      "E2f1\r\n",
      "Spib\r\n",
      "E2f3\r\n",
      "Klf7\r\n",
      "E2f5\r\n",
      "Tbr1\r\n",
      "Ovol1\r\n",
      "Jund\r\n",
      "Twist2\r\n",
      "Itgb3bp\r\n",
      "Wwtr1\r\n",
      "Dcp1a\r\n",
      "Jun\r\n",
      "Junb\r\n",
      "Otx2\r\n",
      "Fhl2\r\n",
      "Tfdp1\r\n",
      "Tfam\r\n",
      "Arhgap35\r\n",
      "Cdc6\r\n",
      "Rfx5\r\n",
      "Safb\r\n",
      "Med12\r\n",
      "Prop1\r\n",
      "Daxx\r\n",
      "Safb2\r\n",
      "Kat5\r\n",
      "Vsx2\r\n",
      "Foxo4\r\n",
      "E4f1\r\n",
      "Tbx1\r\n",
      "Tbx3\r\n",
      "Taf12\r\n",
      "Tbx2\r\n",
      "Tbx5\r\n",
      "Tbx6\r\n",
      "Sertad2\r\n",
      "Mafb\r\n",
      "Cnot3\r\n",
      "Dbp\r\n",
      "Ebf1\r\n",
      "Zeb2\r\n",
      "Zfp68\r\n",
      "Hmgn1\r\n",
      "Six3\r\n",
      "Six4\r\n",
      "Prrx2\r\n",
      "Six1\r\n",
      "Taf1a\r\n",
      "Six2\r\n",
      "Psmc5\r\n",
      "Pcbd1\r\n",
      "Taf6l\r\n",
      "Zkscan17\r\n",
      "Rnf4\r\n",
      "Ski\r\n",
      "Cebpg\r\n",
      "Ddb1\r\n",
      "Sall1\r\n",
      "E2f2\r\n",
      "Irf2bp1\r\n",
      "Ddit3\r\n",
      "Skil\r\n",
      "Gadd45a\r\n",
      "Rnf2\r\n",
      "Irf3\r\n",
      "Tfe3\r\n",
      "Hoxc10\r\n",
      "Batf\r\n",
      "Tal2\r\n",
      "Smarcd2\r\n",
      "Vezf1\r\n",
      "Smarcd1\r\n",
      "Vhl\r\n",
      "Onecut2\r\n",
      "Zfp668\r\n",
      "Zfp128\r\n",
      "Irf7\r\n",
      "Gata2\r\n",
      "Gata3\r\n",
      "Gata4\r\n",
      "Pabpn1\r\n",
      "Gata5\r\n",
      "Vdr\r\n",
      "Cops2\r\n",
      "Gata1\r\n",
      "Tal1\r\n",
      "Gata6\r\n",
      "Taf6\r\n",
      "Ring1\r\n",
      "Taf1c\r\n",
      "Snapc4\r\n",
      "Zic1\r\n",
      "Zhx1\r\n",
      "Zic3\r\n",
      "Zic2\r\n",
      "Pgs1\r\n",
      "Zik1\r\n",
      "Zic4\r\n",
      "Msc\r\n",
      "Prrx1\r\n",
      "Ikzf1\r\n",
      "Nr4a2\r\n",
      "Arx\r\n",
      "Cited2\r\n",
      "Pcbp4\r\n",
      "Gatad2b\r\n",
      "Phox2b\r\n",
      "Nkx2-6\r\n",
      "Usf1\r\n",
      "Nkx2-5\r\n",
      "Nkx6-1\r\n",
      "Nkx2-9\r\n",
      "Nkx3-1\r\n",
      "Tbx21\r\n",
      "Pitx3\r\n",
      "Pitx2\r\n",
      "Pitx1\r\n",
      "Mkl2\r\n",
      "Arntl\r\n",
      "Arnt2\r\n",
      "Arnt\r\n",
      "Foxj2\r\n",
      "Lztfl1\r\n",
      "Hdac7\r\n",
      "Med21\r\n",
      "Usf2\r\n",
      "Taf7l\r\n",
      "Utf1\r\n",
      "Uaca\r\n",
      "Ikzf3\r\n",
      "Pcbp2\r\n",
      "Hdac1\r\n",
      "Cited4\r\n",
      "Myc\r\n",
      "Nr1i3\r\n",
      "Mybl2\r\n",
      "Mybl1\r\n",
      "Phox2a\r\n",
      "Nr1h3\r\n",
      "Nhlh2\r\n",
      "Myb\r\n",
      "Rhox4e\r\n",
      "Nhlh1\r\n",
      "Rfx2\r\n",
      "Rfx1\r\n",
      "Kdm5a\r\n",
      "Nr2e1\r\n",
      "Tlx2\r\n",
      "Tlx1\r\n",
      "Rfxank\r\n",
      "Pax8\r\n",
      "Pax9\r\n",
      "Patz1\r\n",
      "Nr1h2\r\n",
      "Myf6\r\n",
      "Myf5\r\n",
      "Myef2\r\n",
      "Vsx1\r\n",
      "Nfatc4\r\n",
      "Rnf25\r\n",
      "Kat2b\r\n",
      "Pbx1\r\n",
      "Nkx2-3\r\n",
      "Pbx3\r\n",
      "Jade1\r\n",
      "Cdk7\r\n",
      "Smarca5\r\n",
      "Eed\r\n",
      "Smarca1\r\n",
      "Ar\r\n",
      "Bmp4\r\n",
      "Arid1a\r\n",
      "Gtf3c1\r\n",
      "Pax2\r\n",
      "Bmi1\r\n",
      "Dpf2\r\n",
      "Pax3\r\n",
      "Aire\r\n",
      "Pax1\r\n",
      "Pax6\r\n",
      "Pax7\r\n",
      "Pax4\r\n",
      "Pax5\r\n",
      "Cdkn2a\r\n",
      "Cdkn1a\r\n",
      "Ctnnb1\r\n",
      "Ncoa6\r\n",
      "Ahr\r\n",
      "Bmp7\r\n",
      "Pknox1\r\n",
      "Rest\r\n",
      "Nr2f2\r\n",
      "Cbfa2t3\r\n",
      "Rora\r\n",
      "Cdx1\r\n",
      "Runx3\r\n",
      "Cdx2\r\n",
      "Sall2\r\n",
      "Rbak\r\n",
      "Nfkbie\r\n",
      "Foxp1\r\n",
      "Nfkbia\r\n",
      "Nfkb2\r\n",
      "Mbd1\r\n",
      "Nfkb1\r\n",
      "Mbd2\r\n",
      "Nfix\r\n",
      "Gm6740\r\n",
      "Nr0b1\r\n",
      "Nfil3\r\n",
      "Runx2\r\n",
      "Runx1\r\n",
      "Runx1t1\r\n",
      "Mybbp1a\r\n",
      "Zfp110\r\n",
      "Egr1\r\n",
      "Egr2\r\n",
      "Lpp\r\n",
      "Egr3\r\n",
      "Egr4\r\n",
      "Taf4b\r\n",
      "Nfya\r\n",
      "Prdm1\r\n",
      "Nfyb\r\n",
      "Pqbp1\r\n",
      "Tsn\r\n",
      "Max\r\n",
      "Maz\r\n",
      "Gtf2ird1\r\n",
      "Cic\r\n",
      "Evx2\r\n",
      "Neurod1\r\n",
      "Nkx6-2\r\n",
      "Neurod2\r\n",
      "Neurog1\r\n",
      "Ascl1\r\n",
      "Nfatc2\r\n",
      "Nfatc1\r\n",
      "Mafa\r\n",
      "Ppargc1b\r\n",
      "Onecut3\r\n",
      "Tsc2\r\n",
      "Ehf\r\n",
      "T\r\n",
      "Barhl1\r\n",
      "Hnrnpdl\r\n",
      "Maml3\r\n",
      "Ddb2\r\n",
      "Nfe2l1\r\n",
      "Med15\r\n",
      "Nobox\r\n",
      "Nfatc3\r\n",
      "Nfe2\r\n",
      "Nfia\r\n",
      "Crxos\r\n",
      "Nfe2l3\r\n",
      "Mecom\r\n",
      "Nfic\r\n",
      "Mta1\r\n",
      "Lhx1\r\n",
      "Pou3f4\r\n",
      "Cdk9\r\n",
      "Pou4f1\r\n",
      "Brd7\r\n",
      "Irx4\r\n",
      "Olig1\r\n",
      "Pou3f2\r\n",
      "Tle6\r\n",
      "Olig2\r\n",
      "Pou3f1\r\n",
      "Lhx4\r\n",
      "Zfp503\r\n",
      "Lhx3\r\n",
      "Zmynd10\r\n",
      "Lhx2\r\n",
      "Hnrnpu\r\n",
      "Etv1\r\n",
      "Trp63\r\n",
      "Zfp60\r\n",
      "Arid2\r\n",
      "Suv39h2\r\n",
      "Pou4f3\r\n",
      "Pou5f1\r\n",
      "Preb\r\n",
      "Mllt1\r\n",
      "Trp53\r\n",
      "Smyd1\r\n",
      "Zfp64\r\n",
      "Helt\r\n",
      "Zbtb7b\r\n",
      "Nanog\r\n",
      "Ncor2\r\n",
      "Hdac2\r\n",
      "Creb3l4\r\n",
      "Hdac5\r\n",
      "Zfp422\r\n",
      "Hdac3\r\n",
      "Maff\r\n",
      "Hdac6\r\n",
      "Smad7\r\n",
      "Mn1\r\n",
      "Mafg\r\n",
      "Mafk\r\n",
      "Tfap4\r\n",
      "Med23\r\n",
      "Smad9\r\n",
      "Lbx1\r\n",
      "Rsl1\r\n",
      "Foxo3\r\n",
      "Camta2\r\n",
      "Sox21\r\n",
      "Pou2af1\r\n",
      "Trip11\r\n",
      "Smad3\r\n",
      "Brf1\r\n",
      "Pou2f2\r\n",
      "Pou2f1\r\n",
      "Smad5\r\n",
      "Glis2\r\n",
      "Mxi1\r\n",
      "Ezh2\r\n",
      "Ezh1\r\n",
      "Traf4\r\n",
      "Paxip1\r\n",
      "Nr2c2\r\n",
      "Nr2c1\r\n",
      "Zfp423\r\n",
      "Hes7\r\n",
      "Cdc5l\r\n",
      "Nr1d2\r\n",
      "Hcfc1\r\n",
      "Esrrg\r\n",
      "Irx6\r\n",
      "Mxd1\r\n",
      "Hsf4\r\n",
      "C1d\r\n",
      "Foxo1\r\n",
      "Esrrb\r\n",
      "Zfp90\r\n",
      "Mnt\r\n",
      "Bcor\r\n",
      "Foxk1\r\n",
      "Snai1\r\n",
      "Kcnip3\r\n",
      "Esrra\r\n",
      "Nfat5\r\n",
      "Atf6\r\n",
      "Zfy1\r\n",
      "Sirt3\r\n",
      "Mnat1\r\n",
      "Ewsr1\r\n",
      "Lef1\r\n",
      "Pcgf6\r\n",
      "Pias1\r\n",
      "Zfpm1\r\n",
      "Zfpm2\r\n",
      "Pdcd7\r\n",
      "Srf\r\n",
      "Ptch1\r\n",
      "Isl2\r\n",
      "Trim33\r\n",
      "Rxrb\r\n",
      "Rxra\r\n",
      "Ncor1\r\n",
      "Arid3c\r\n",
      "Nr1h4\r\n",
      "Zfp472\r\n",
      "Gfi1\r\n",
      "Hey1\r\n",
      "Taf7\r\n",
      "Taf10\r\n",
      "Creg1\r\n",
      "Prrxl1\r\n",
      "Snai2\r\n",
      "Tfec\r\n",
      "Ifi204\r\n",
      "Vps72\r\n",
      "Mlx\r\n",
      "Smarcc1\r\n",
      "Ubtf\r\n",
      "Smarcb1\r\n",
      "Smarca4\r\n",
      "Hltf\r\n",
      "Spi1\r\n",
      "Noto\r\n",
      "Tfcp2\r\n",
      "Hmgb2\r\n",
      "Tcf3\r\n",
      "Rfxap\r\n",
      "Srebf1\r\n",
      "Srebf2\r\n",
      "Foxp3\r\n",
      "Zbtb20\r\n",
      "Nufip1\r\n",
      "Ptf1a\r\n",
      "Herc1\r\n",
      "Nfx1\r\n",
      "Hes5\r\n",
      "Hesx1\r\n",
      "Thrap3\r\n",
      "Hes2\r\n",
      "Hes3\r\n",
      "Rcor2\r\n",
      "Foxl2\r\n",
      "Dtx1\r\n",
      "Tfap2a\r\n",
      "Tfap2b\r\n",
      "Atr\r\n",
      "Tcf7l2\r\n",
      "Zeb1\r\n",
      "Tcf7\r\n",
      "Tcf7l1\r\n",
      "Sp7\r\n",
      "Tcf4\r\n",
      "Hnf1b\r\n",
      "Tcf20\r\n",
      "Polr2b\r\n",
      "Cited1\r\n",
      "Ep300\r\n",
      "Rbbp7\r\n",
      "Nfkbiz\r\n",
      "Tcf15\r\n",
      "Zfp354a\r\n",
      "Smarce1\r\n",
      "Foxd3\r\n",
      "E2f4\r\n",
      "Foxq1\r\n",
      "Hnf1a\r\n",
      "Tcf12\r\n",
      "Maml1\r\n",
      "Tcea2\r\n",
      "Figla\r\n",
      "Creb3l3\r\n",
      "Hdac10\r\n",
      "Foxg1\r\n",
      "Foxd1\r\n",
      "Foxf1\r\n",
      "Tfdp2\r\n",
      "Id3\r\n",
      "Id4\r\n",
      "Klf16\r\n",
      "Taf9\r\n",
      "Mllt6\r\n",
      "Hif1a\r\n",
      "Irf8\r\n",
      "Id1\r\n",
      "Id2\r\n",
      "Tead3\r\n",
      "Tead4\r\n",
      "Mitf\r\n",
      "Tead1\r\n",
      "Tead2\r\n",
      "Stat5a\r\n",
      "Pias2\r\n",
      "Sry\r\n",
      "Stat5b\r\n",
      "Stat6\r\n",
      "Nr6a1\r\n",
      "Tceb2\r\n",
      "Kat2a\r\n",
      "Gcm1\r\n",
      "Hhex\r\n",
      "Ctcf\r\n",
      "Hic1\r\n",
      "Ctbp2\r\n",
      "Foxp4\r\n",
      "Lcor\r\n",
      "Zfp263\r\n",
      "Ctbp1\r\n",
      "Rhox8\r\n",
      "Tdg\r\n",
      "Arid4b\r\n",
      "Drap1\r\n",
      "Parp12\r\n",
      "Arid4a\r\n",
      "Dmbx1\r\n",
      "Jdp2\r\n",
      "Hivep2\r\n",
      "Trim30a\r\n",
      "Erf\r\n",
      "Ssrp1\r\n",
      "Etv3\r\n",
      "Mllt3\r\n",
      "Gabpa\r\n",
      "Ncoa4\r\n",
      "Irf5\r\n",
      "Sra1\r\n",
      "Stat3\r\n",
      "Stat4\r\n",
      "Stat1\r\n",
      "Etv5\r\n",
      "Nr2f1\r\n",
      "Nr2f6\r\n",
      "Aes\r\n",
      "Rarg\r\n",
      "Klf13\r\n",
      "Tada3\r\n",
      "Crem\r\n",
      "Creb1\r\n",
      "Fezf2\r\n",
      "Cux1\r\n",
      "Crebbp\r\n",
      "Cux2\r\n",
      "Pou6f1\r\n",
      "Creb3\r\n",
      "Plagl2\r\n",
      "Trib3\r\n",
      "Foxp2\r\n",
      "Topors\r\n",
      "Rela\r\n",
      "Relb\r\n",
      "Rel\r\n",
      "Hdac4\r\n",
      "Rara\r\n",
      "Pura\r\n",
      "Pias3\r\n",
      "Purb\r\n",
      "Foxh1\r\n",
      "Ppard\r\n",
      "Pparg\r\n",
      "Arid1b\r\n",
      "Ppara\r\n",
      "Smyd3\r\n",
      "Med1\r\n",
      "Tle4\r\n",
      "Tle3\r\n",
      "Rax\r\n",
      "Rorb\r\n",
      "Tle2\r\n",
      "Tle1\r\n",
      "Scmh1\r\n",
      "Atm\r\n",
      "Irf1\r\n",
      "Irf2\r\n",
      "Neurod6\r\n",
      "Atoh1\r\n",
      "Neurod4\r\n",
      "Neurog3\r\n",
      "Gtf3a\r\n",
      "Tef\r\n",
      "Rpl7\r\n",
      "Smarcd3\r\n",
      "Ascc1\r\n",
      "Kat6a\r\n",
      "Ovol2\r\n",
      "Ubp1\r\n",
      "Crx\r\n",
      "Epas1\r\n",
      "Arid3a\r\n",
      "Atf5\r\n",
      "Nkx2-1\r\n",
      "Eomes\r\n",
      "Rbl1\r\n",
      "Hnrnph2\r\n",
      "Clock\r\n",
      "Ddx5\r\n",
      "Ddx3x\r\n",
      "Rbbp4\r\n",
      "Rb1\r\n",
      "Phtf1\r\n",
      "Gmeb1\r\n",
      "Kdm5c\r\n",
      "Klf10\r\n",
      "Trim24\r\n",
      "Trim28\r\n",
      "Med6\r\n",
      "Blzf1\r\n",
      "Snw1\r\n",
      "Bhlhe41\r\n",
      "Klf12\r\n",
      "Taf3\r\n",
      "Klf1\r\n",
      "Rbpjl\r\n",
      "Rrn3\r\n",
      "Med17\r\n",
      "Rbpj\r\n",
      "Xbp1\r\n",
      "Wt1\r\n",
      "Hoxc11\r\n",
      "Rhox11\r\n",
      "Zmym2\r\n",
      "Ttf1\r\n",
      "Bach1\r\n",
      "Hoxd1\r\n",
      "Bach2\r\n",
      "Thra\r\n",
      "Bag1\r\n",
      "Hoxc6\r\n",
      "Hoxc4\r\n",
      "Thrb\r\n",
      "Rnf14\r\n",
      "Bptf\r\n",
      "Ccnt2\r\n",
      "Hoxd10\r\n",
      "Klf5\r\n",
      "Hoxd12\r\n",
      "Zfp239\r\n",
      "Barx1\r\n",
      "Nkx3-2\r",
      "\r\n",
      "Hoxd8\r\n",
      "Gmeb2\r\n",
      "Hoxd9\r\n",
      "Barx2\r\n",
      "Hoxd13\r\n",
      "Hoxd3\r\n",
      "Hoxd4\r\n",
      "Mapk7\r\n",
      "Arid5b\r\n",
      "Mycn\r\n",
      "Pcgf2\r\n",
      "Ccnt1\r\n",
      "Tsc22d1\r\n",
      "Spdef\r\n",
      "Hoxa5\r\n",
      "Atoh7\r\n",
      "Hoxa3\r\n",
      "Pgr\r\n",
      "Tgif1\r\n",
      "Hoxb1\r\n",
      "Phb2\r\n",
      "Hoxa7\r\n",
      "Hoxa9\r\n",
      "Hoxb13\r\n",
      "Twist1\r\n",
      "Abl1\r\n",
      "Trps1\r\n",
      "Rybp\r\n",
      "Pml\r\n",
      "Zfp148\r\n",
      "Zbtb14\r\n",
      "Hoxb3\r\n",
      "Pbrm1\r\n",
      "Hoxb4\r\n",
      "Hoxb5\r\n",
      "Zbtb33\r\n",
      "Hoxb7\r\n",
      "Hoxb8\r\n",
      "Hoxb9\r\n",
      "Tgfb1i1\r\n",
      "Nr3c2\r\n",
      "Txk\r\n",
      "Fev\r\n",
      "Atf3\r\n",
      "Atf4\r\n",
      "Mycbp\r\n",
      "Zfp467\r\n",
      "Notch1\r\n",
      "Notch2\r\n",
      "Irx3\r\n",
      "Nr5a1\r\n",
      "Nr4a3\r\n",
      "Nr5a2\r\n",
      "Polr2k\r\n",
      "Creb3l1\r\n",
      "Pdx1\r\n",
      "Cebpe\r\n",
      "Atf2\r\n",
      "Vgll2\r\n",
      "Ciita\r\n",
      "Rfx4\r\n",
      "Gtf2b\r\n",
      "Hivep1\r\n",
      "Elf4\r\n",
      "Bin1\r\n",
      "Zrsr1\r\n",
      "Zfp326\r\n",
      "Tox\r\n",
      "Hdac9\r\n",
      "Mapk3\r\n",
      "Mapk14\r\n",
      "Tgs1\r\n",
      "Zscan21\r\n",
      "Isl1\r\n",
      "Irf9\r\n",
      "Taf1\r\n",
      "Aatf\r\n",
      "Kmt2a\r\n",
      "Mtf1\r\n",
      "Mtf2\r\n",
      "Npas2\r\n",
      "Npas1\r\n",
      "Npm1\r\n",
      "Per1\r\n",
      "Plag1\r\n",
      "Mta2\r\n",
      "Per2\r\n",
      "Per3\r\n",
      "Sall4\r\n",
      "Smarcal1\r\n",
      "Notch3\r\n",
      "Spz1\r\n",
      "Nr2e3\r\n",
      "Etv4\r\n",
      "Rhox5\r\n",
      "Zhx2\r\n",
      "Btaf1\r\n",
      "Nr3c1\r\n",
      "Msx1\r\n",
      "Msx2\r\n",
      "Hnrnpll\r\n",
      "Hmgb1\r\n",
      "Kdm5b\r\n",
      "Foxc1\r\n",
      "Foxd2\r\n",
      "Bhlhe40\r\n",
      "Trrap\r\n",
      "Gtf2a1l\r\n",
      "Ybx1\r\n",
      "Nr1d1\r\n",
      "Aff3\r\n",
      "Meis2\r\n",
      "Pcbp1\r\n",
      "Supt16\r\n",
      "Nrf1\r\n",
      "Nrl\r\n",
      "Med24\r\n",
      "Pin1\r\n",
      "Fus\r\n",
      "Hoxb2\r\n",
      "Eid2\r\n",
      "Myog\r\n",
      "Myod1\r\n",
      "Mixl1\r\n",
      "Syne1\r\n",
      "Parp1\r\n",
      "Hsf1\r\n",
      "Pknox2\r\n",
      "Nr1i2\r\n",
      "Rab11fip3\r\n",
      "En1\r\n",
      "En2\r\n",
      "Emx1\r\n",
      "Strn\r\n",
      "Emx2\r\n",
      "Scml2\r\n",
      "Eid1\r\n",
      "Myt1l\r\n",
      "Myt1\r\n",
      "Snai3\r\n",
      "Atf7ip\r\n",
      "Nab2\r\n",
      "Hdac8\r\n",
      "Elf2\r\n",
      "Satb2\r\n",
      "Mllt11\r\n",
      "Bcl3\r\n",
      "Plagl1\r\n",
      "Med14\r\n",
      "Yy1\r\n",
      "Scrt1\r\n",
      "Bcl6\r\n",
      "Nrip1\r\n",
      "Zc3h8\r\n",
      "Cdk8\r\n",
      "Nsd1\r\n",
      "Ascl3\r\n",
      "Tceb3\r\n",
      "Zbtb17\r\n",
      "Setdb1\r\n",
      "Zic5\r\n",
      "Alx1\r\n",
      "Hsbp1\r\n",
      "Ncoa7\r\n",
      "Atf7\r\n",
      "Gsc\r\n",
      "Nrg1\r\n",
      "Spic\r\n",
      "Mzf1\r\n",
      "Apex1\r\n",
      "Bdp1\r\n",
      "Gsx2\r\n",
      "Gsx1\r\n",
      "Ncoa1\r\n",
      "Ncoa2\r\n",
      "Ncoa3\r\n",
      "E2f6\r\n"
     ]
    }
   ],
   "source": [
    "!cat mm_tfs.txt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3.6.2 (pyscenic_dev)",
   "language": "python",
   "name": "pyscenic_dev"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.2"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
